perm filename CH1.BH2[ESS,JMC] blob sn#061886 filedate 1973-09-09 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	INTRODUCTION TO TIMESHARING
C00011 ENDMK
CāŠ—;
INTRODUCTION TO TIMESHARING

	This manual describes  the use of the PDP-10  computer system
at the Stanford  Artificial Intelligence Laboratory.  The computer is
operated  exclusively  as  a  time-sharing  system,  and  this  first
section of the manual is an introduction to time-sharing.

	A time-sharing  computer system includes the  computer itself
(in   our  case   a  PDP-10   computer  made  by   Digital  Equipment
Corporation),  user  terminals for  input  to  and  output  from  the
computer (in  our case about 60 keyboard  and display terminals), and
a file system that  keeps programs, data  for the programs,  reports,
and other data for the users.

	The basic  idea  of time-sharing  is to  allow  each user  to
behave  as though  he had  a  computer to  himself controlled  by his
terminal.   This is  accomplished by  having the  computer cycle  its
attention among the users wanting service  in rotation.  It does this
fast  enough  so that  small  requests are  serviced in  a  time that
ranges from a small fraction  of a second to a few  seconds depending
on the  number of people demanding  service at that instant.   If the
desired computation is long, the computer  will do a bit of it,  then
service  other  people, then  return  to  it,  and so  on  until  the
computation is  done.  The time taken will depend  on the size of the
computation and how busy the machine is.

	At any  time the  user's terminal  is  interacting with  some
program.   These programs  include the time-sharing  Monitor, editors
used to  prepare programs, documents, reports and other data, various
utility programs, and the user's own programs.

	When  you  first  sit  down  at  a  terminal,   you  will  be
interacting  with the Monitor,  and you  can always  get back  to the
Monitor by pressing the  CALL key on the  terminal.  The first  thing
you have to do is to "log in" which tells  the monitor who you are so
it  can connect you  to the file  directory that  contains your files
and can do its  accounting.  The  last thing you do  is "log out"  so
that the terminal and other resources  you have been occupying can be
used by someone else.

	You will  have a certain quota of disk space and will be able
to  keep  files such  as  programs  between  uses  of  the  computer.
Therefore, you will not  ordinarily need any external form of storage
such as punched cards or magnetic  tape.  (Our computer doesn't  even
have punched card equipment).

	A user gets service  from programs by typing commands  to the
monitor.  Some Monitor  commands perform  the  service and  leave you
again talking to the Monitor.   Others put you into interaction  with
a  program and  you have  to interact  with that  program in  the way
prescribed  by it.   When you  are done with  it, you go  back to the
Monitor.

	A  typical task  is  to  write  a program  in  some  computer
language such as  SAIL (our dialect of ALGOL) or  LISP and then debug
the program  by running  it, checking  the results,  and changing  it
until  it gives  the right  answers.   This  is  accomplished in  the
following steps:

	1.  First  you run  an editor.    (We have  several,  but the
current favorite is called E).  The editor puts your terminal  into a
mode where  what you  type becomes  the text of  the program  you are
writing.   However,  the editor  gives you convenient  facilities for
going back in your text  and making changes that you think of  as you
go along.   Most people don't write their programs  on paper but make
them up as they use the editor. When the program is ready to try  you
exit from the editor back to the Monitor, and  your program is a file
on  the disk  with a name  you have  given it.  At any time,  you can
re-edit this file to make  changes in it.   You can also print it  on
the line printer to take a copy  home, and when you don't need it any
more you can delete it.

	2.  Normally,  the  next  step  is  to  call  a  compiler  to
translate the program  from a source  language into machine  language
and the loader to load  it into your "core image" and finally ask the
computer to run it. You can  do these things as separate  operations,
but facilities are provided for initiating all  of this with a single
command.

	3. When  the computer runs your program,  it may just produce
answers and stop.   If you  like the answers,  perhaps you are  done.
Otherwise, you go  back to the editor to make  changes in the "source
file"  and try  again. On  the other  hand, you  may have  written an
interactive program that writes  on your terminal and expects  you to
type input on the terminal  which it then interprets and gives output
and asks for more input etc.   Your program may read files and  write
them. (Printed output is  obtained by writing a file  and printing it
later  rather than  by printing  directly on the  line printer.   You
don't want to tie up the  line printer, because your program is  slow
or because it  dies half way through writing or  because it gets into
a  loop and  writes indefinitely.)  It may  display pictures  on your
terminal.  Finally,  it may  interact  with  the  physical  world  by
reading pictures from one of  the TV cameras attached to the computer
and by waving the mechanical arm.

	4. In order to debug a program, you may have to do more  than
just look  at the  output.   Therefore, the  time-sharing system  has
facilities for  examining and changing the  contents of registers and
for putting break-points in programs.